#-*- coding: utf8 -*-

from tutor.script import *
from tutor.plugin.maple import *

# meta information
meta(author       = 'Fábio Mendes',
     creationdate = datetime(2010, 10, 9),
     status       = 'testing',
     difficulty   = 'easy',
     time         = 10,
     itemtype     = 'test')

# seleciona pontos
x1 = oneof(0, 0, 1, 2, 3) * oneof(1, -1)
x2 = oneof(0, 0, 1, 2, 3) * oneof(1, -1)
y1 = oneof(0, 0, 1, 2, 3) * oneof(1, -1)
y2 = oneof(0, 0, 1, 2, 3) * oneof(1, -1)
x1, x2 = min(x1, x2), max(x1, x2)
y1, y2 = min(y1, y2), max(y1, y2) 
assert x1 != x2
assert y1 != y2

# define triangulo superior/inferior
upper_t = oneof(True, False)
P1 = (x1, y1)
P2 = (x1, y2)
P3 = (x2, y2)

question('Calcule o momento de inércia com relação ao eixo $x$ do triângulo de \n' 
         'densidade constante  $\\sigma_0$ e vértices em $#1$, $#2$ e $#3$.', 
         P1, P2, P3)
multiplechoice()

reta = y1 + (x - x1) * (y2 - y1) / (x2 - x1)
reta2 = M.solve(y==reta, x)
__ = M('`..`')

# choice: (a)
res = M.int(y**2, y==__(reta, y2))
res = M.int(res, x==__(x1, x2))
res = M.combine(res)
choice_eq(1, res * M.sigma[0])
explanation('Escolha correta!') 

# choice: (b)
res = M.int(x**2, y==__(reta, y2))
res = M.int(res, x==__(x1, x2))
res = M.combine(res * M.sigma[0])
choice_eq(0.5, res)
explanation('Calculou momento de inércia com relação ao eixo $y$.') 

# choice: (c)
res = M.int(y**2, x==__(x1, x2))
res = M.int(res, y==__(y1, y2))
res = M.combine(res)
choice_eq(0, res * M.sigma[0])
explanation('Domínio de integração quadrado.') 

# choice: (d)
res = M.int(x**2 + y**2, y==__(reta, y2))
res = M.int(res, x==__(x1, x2))
res = M.combine(res)
choice_eq(0, res * M.sigma[0])
explanation('Calculou momento de inércia com relação ao eixo $z$.') 

# choice: (e)
res = M.int(x**2 + y**2, x==__(x1, x2))
res = M.int(res, y==__(y1, y2))
res = M.combine(res)
choice_eq(0, res * M.sigma[0])
explanation('Calculou momento de inércia com relação ao eixo $x$. Domínio de integração quadrado.') 

end()